perm filename NOTICE[UP,DOC]6 blob sn#019297 filedate 1973-01-09 generic text, type T, neo UTF8
*25 Feb 1972	NOTICEs	LES

This file, kept in  NOTICE[UP,DOC],  is intended  to  function  as  a
computerized  bulletin  board.     System  programmers  and CUSP file
contributors are invited to disseminate  information  concerning  new
programs  and  system  features  by adding notices to this file.  The
format is arbitrary, except that the first line (and only the first
line) should begin with a "*" and should contain three fields in the
form
 *<date><TAB><subject><TAB><programmer initials>
In the date field, the year, month and day may be given in any order
and the year may be abbreviated to 2 digits, but the month must be
given as 3 or more letters.

*9 Jan 1973	NEWS	LES
To get selective listings from the NOTICE file, say "R  NEWS",  which
will respond with an asterisk and expect a query such as
 *March 15
This asks for all notices posted since the ides of March. If the  day
is  omitted,  1  is  assumed;  if  the  month  is omitted, January is
assumed; if the year is omitted  (as  above)  the  last  instance  is
assumed.

 *Nov<TAB>SAIL
is an example of a more general kind if query.   This  asks  for  all
notices  since  last  November  1  that  contain  the  string  "SAIL"
somewhere in the subject field, with any  case  differences  ignored.
The search could be made more specific by saying
 *NOV<TAB>SAIL<TAB>DCS
which delivers only such notices written by Dan Swinehart.

If  the  query begins with a <TAB>, so that the date is omitted, then
all dates will be accepted.   Similarly, the  Subject  field  may  be
omitted. A null query outputs the entire NOTICE file.

If you would like the output to be spooled, type "*" at  the  end  of
your query, e. g.
 *July 4, 1776	Sex*
If you would like to see title lines only, put a "-" at the end.  You
can use both "*" and "-" together in either order.

If you forget all this, type "?<return>" and this notice will  appear
magically.

*1 JAN 1972	DO	RPH
Manual is in DO.RPH[S,DOC].

*1 JAN 1972	DMAN	REG
Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].

*1 JAN 1972	SPOOLER	REG
See SPOOL.DOC[S,DOC].

*1 JAN 1972	RSL SL WHAMS BAMS ETC	JHS
Service Level Reservation System -- see RSL[S,DOC]


*1 JAN 1972	Keyboard Commands	LES
To get a summary of line editor  and  other  Monitor  commands,  list
KEY.LES[S,DOC).

*1 FEB 1972	INFO	REM

To have access to the REM information system, type "RU I[S,REM]".

*1 Jan 1972	FINGER	LES

To get a listing of the names of all users currently  logged  in  and
their locations, say "R FINGER".

*29 Feb 1972	"Sticky PPN's" (RPG, COMPILE)	DCS

   A PPN specification [P,PN] appearing before a file name in an
RPG command string will be used for all subsequent files which
do not specify a PPN explicitly.  This default remains in effect
until another "sticky PPN" is specified.
   As an example, if I am running under [AIL,DCS]:

    COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR

would write the output on [AIL,DCS], get HEAD,DB, and PROD from
[AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].

*1 Jan 1972	SAIL Statement Counter Profile	RES

To find out how to get SAIL to give you execution frequency data for
pieces of your program, list NEWMAN[S,AIL].

*2 Mar 1972	CREF Default Listing Device	DCS

The CREF default listing device has been changed from LPT to DSK.
This change is not made in RPG mode (so that the CREF system
command will still go directly to LPT).

*14 Mar 1972	TV "." and <esc>I Features	DCS

Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
page to become a permanent part of the file (like "W" in SOS).  CANCEL
will henceforth bring back this version, not the old one.

To interrupt a "FIND" search prematurely, type <esc>I.  This replaces
the "\<crlf>" method.

*23 Mar 1972	TV for III	DCS
The TV editor (though still officially unsupported) will now run on
both Data-Disk and III.  In fact, you can transfer (by detach/attach)
from one to the other in mid-edit!

*30 APR 72	SEND	RPH
SEND NOW HAS THE FOLLOWING FORMATS:

SEND PN		SEND TO ALL PN'S
SEND *		WRITE NOTICE.TXT
SEND *,PN	SAME AS SEND PN
SEND P,*	SEND TO ALL P'S
SEND P,PN	SEND TO SPECIFIC P,PN
SEND *,*	SAME AS SEND *
A PN IS SOME PROGRAMMER NAME
A P IS SOME PROJECT NAME

*30 APR 72	FAIL	FW
The double arrow character is no longer treated specially
within the comment portion of a line.  When not within a
comment, it is equivalent to a carriage-return, line-feed
pair.  Now, within comments, it prints as itself.

*3 JUN 1972	RAID	DCS
A new version of RAID is on the system.  Since it is compatible with
both Data-Disc and III consoles, I have put it on SYS: as both 
RAID.REL and TVRAID.REL.  Therefore /V, /1V, /H, /1H will all load
the same program.  Later, TVRAID will be phased out (of LOADER, RPG)
and the numeric argument to H and V switches will be ignored.
This version has been tested fairly carefully.  But report any
problems you have to DCS, anyway.  The old files are saved as
RAID.RLO and TVRAID.RLO on [CSP,SYS].

The following things have been changed:
__ There are a few display changes; in particular, the arrow
   conventions of the Data-Disc RAID are now used everywhere.
__ Byte mode input will be displayed in byte mode.
__ Conditional breakpoints now work exactly as advertised.
__ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
__ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)

The following new features have been added:
__ There are three new entries to the dispatch table preceding
   DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
   this table.  The three are:
	DDT-12:	→$RPTCNT	See below
	DDT-11: →$BGDDT		First word of DDT
	DDT-10: →DDTEND		Last word of DDT

__ This is "Version 1" of RAID.  The version is henceforth stored
   in the leftmost 13 bits of JOBDDT.  Since DDT and old RAID
   contain 0 here, you can tell which you have loaded.  This is for
   the benefit of programs which use new features -- they can
   try alternate methods if the Version isn't high enough.
__ If you insert a JSR $I in your program, you will effectively
   place a breakpoint at that location.  You can proceed via <ctrl>P.
   DO NOT single-step or set a breakpoint on this instruction!
   $I is an INTERNAL symbol in RAID.  There is a pointer to it at
   DDT-6.
__ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
   the address specified by JOBOPC.  You can proceed with <ctrl>P.
   Do not expect this to work if you enter DDT before running anything,
   or if your program jumps to DDT (unless it stores a reasonable
   address in JOBOPC first).
__ n<ctrl><meta>S, where n is a number, will execute instructions
   in multi-step mode, as it would if n were absent.  However, no
   change will be made in  the display until:
     1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
     2) RAID must pause to get instructions at a subroutine call.
     3) You interrupt the stepping by typing something, or a
	breakpoint is encountered.
   After you respond at a type (2) pause, again the display remains
   unchanged until one of the conditions occurs again.  If you
   responded <ctrl>S or <ctrl>X to the pause, the count will be
   exhausted before the display changes again -- barring type (3)
   events.  The remaining count, if any, is always available in 
    $RPTCNT.   This is useful for counting exact numbers of 
     executions in a given routine, etc.
__ Symbol<meta>K obliterates the Symbol.  Unlike <ctrl>K, which
   simply eliminates typout of the symbol, this also makes it
   undefined for typein.  If, for instance, you have two locations
   with the name NM1, do:
	NM2←NM1		Assigns a new name to one of them.
	NM1<meta>K	Deletes this symbol completely.
	NM1;		Reveals value of the other NM1.  Now
			NM2 refers to the first.
__ Macros:
   Address<ctrl>M<letter> defines <ctrl><meta><letter> as
   a macro.  When the macro is invoked, Address (it can be just
   an address or a byte pointer value) will be put in $M-1 (see
   RAID.ON[S,DOC].  This has the effect of evaluating the string
   at Address before evaluating any more keyboard input -- expanding
   the macro.  Be warned that many <ctrl><meta><letter> combinations
   already mean something -- use one you can do without (the macro
   takes precedence).
*4 JUN 1972	NEW DISPLAY EDITOR	SRS

there now exists a new display editor, called ED, available for
experimentation.  to run it, type
 RU ED[S,SRS]
when it starts up, there will be some documentation on the screen.
	ED is presently experimental, and improving.  Features
include:  editing several files at once, splitting screen between
several files or strings, faster than TV in some cases.

*6 JUN 1972	PUB MANUAL	TES

A new version of PUB was put up today with some obscure bugs fixed.
Indexes and headings now work well.  AFTER PAGE does not always
work, but AFTER TEXT is usually equivalent and does work.
If you must use old version, please tell me why! To use it, log in
as 12,TES and RUN PUB.

There is a new manual: SPOOL PUB.TES[S,DOC]/N/B   It is 80 PAGES long, so
if you don't plan to use PUB for a few months, it is advisable to
wait for the SAILON to be printed.  The new manual has an index
and a tutorial for beginners, plus appendices with (untested) examples.
To use PUB for simple purposes, only a portion of the manual needs to be
read.

*MAR 1972	LOGOUT	REG
Recent changes to logout command.

	The logout command is used to terminate a job that was created
by Login, Fork, or Cfork commands.  The usual form of the command is
K or KJOB, typed at monitor level, followed by a carriage return.

	A new command is called KAT, which combines the features of the
K command and the ATtach command.  KAT requires the job number of the
job to which you want to attach.  As in the Attach command, if you
are attaching to a job with a different PPN than the job you are leaving,
you must supply the ppn of the job to which you are attaching.

	Command Formats
	Note that curly backets { and } denote optional
arguments; pointy brackets < and > denote a symbolic item which  should
be replaced by some concrete instantiation of that item.

K or KJOB command:

K{JOB}{/<switch list>}

KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}

Each command line is terminated by a carriage return.

	The item <switch list> consists of any sequence of letters
chosen from the list below:
	THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.

For further confusion, consult R. Gorin.
*1969	DDT	WFW
 The following changes have been made to DDT:

 l.  Halfword printout is now of the form  A,,B  instead
     of  (A)B.  Either form may be used on input.  The difference
     is that  A,,B  truncates  A to 18  bits before 
     swapping halves while  (A)B  does not.

 2.  $U is a new output mode.  It is the same as $A$H.
 3.  $F mode will now print normalized floating permit
     numbers as decimal integers.  This means that
     FORTRAN users may, in general, use $F to look at
     all variables and they will be printed correctly 
     either fixed or floating.

 4.  If the address of a string of ASCIZ text is placed
     in $nB+3, then whenever breakpoint  n  is reached,
     DDT will act as if the characters in the string were
     being read from the teletype.  If you are preparing 
     such a string in advance use either  $ or ≠ (≠33 octal)
     for altmode.

5.   If a  bytepointer to an  asciz  string is placed in
     $M-l, DDT will act as if the characters in the string
     are being read from the teletype.

 6.  $$7" <delimiter> characters <delimiter> will act just
     like an  asciz   statement in MACRO or FAIL,i.e.,
     more than one word will be filled with  asciz for 
     the characters if necessary.  $$" will have a similar
     effect but with sixbit.

 7.  Typing <number>$$P will cause DDT to do an automatic
     proceed  <number>  times instead of forever.

 8.  When printing in  $$  mode, no word will be printed
     out as an I/O instruction (COND, DATAO, CONI, etc.)
     unless the device number is in a special table.  The
     table is  10  words long and is in $I-1, $I-2, etc.
     Simply put device number here to have the appropriate I/O
     instructions printed.

 9.  If an address is placed in  $M-2  then for each character
     DDT wishes to output, a pushj 1,@$M-2 will be executed. 
     This allows output to be redirected to some device 
     other than the TTY.  The character is in register 5.  The
     routine should preserve all AC's and end with a POPJ l,.

10.  In byte mode output ($<number>0), if a size of 0
     is specified, DDT will use a special mark in $M+2.
     The boundry between 1 and 0 bits specifies the size
     of the bytes.  For example, a word containing

		11111111111 00000000000 11100010110001

     would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
     bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.

11.  Bytes may be input of $<number>%.  This should be
     followed by a string of unsigned octal numbers
     separated by common and terminated by an altmode.  The 
     number of bytes in a word is not integal the last
     byte is treated as if the word were larger 
     (bit number greater than 35).  This makes input compatible
     with output.  A size of  O  uses the mark in $M+2
     as above.

12.  It is now possible to print flag words and  T  type
     instruction (TRUN, TLNN, etc.) with suitable names
     for the bit involved.  In $M+3 a pointer of the following
     form is placed:

				_______
				|            |
    _______      	|             |
$M+3 |  L1 | T0  |		| Table 0    | 
				|            |
				_______
	
				
				_______
				|            |
				| Table 1    |
				|            |
				_______

				_______
				|	     |                
				| Table 2    |
				|	     |                
				_______
     As many tables as desired may be included.  The pointer
     to the last table should have 0 in the left half. Each
     table contains 36 words.  The  nth  word contains the
     RADIX50 for the name of bit n.  $<number>J  mode will
     cause a word to be printed out using the bit names in
     table number.  If an entry for a bit in 0, the numeric
     value will be printed.  A typical word might look like

              foo! baz! 123,, fool! garp! 2

     $J means $0J.  $nL causes the left half to be
     printed in symbolic and the right half to be printed in
	↑STODAT:
     bit mode, using the names of the bits as if they appeared
     in the left half. $<number>V prints the left half in symbolic
     and the right half in bit mode.

13.  You can now transfer to what is pointed to by the left half
     of a word in the same manner as you transfer using <tab>.
     The command is <control>].

*FEB 1972	NEW WHO	DCS
As of 12-9-71:

1. WHO  will  run for about two minutes, then quit.  You can  reset
   this time by issuing commands (see below).

2. Typing <call> does not stop spacewar jobs.  However, after about
   6 seconds of operation after a <call>, the spacewar portion of
   WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777).  This will
   be made cleaner if the system types give me some help.

3. WHO commands are now single-character commands.  WHO will not wait
   for a carriage return before executing one.

4. Previously, many lines of the WHO page were lost below the bottom
  of the screen.  WHO now provides a "windowing" feature.   Type  "↑"
  to  move  the  text  up,  so  that the line which did appear at the
  center of the screen now appears at the top.  This reveals  several
  new  lines  at  the  bottom.  A digit preceding the "↑" serves as a
  repeat factor.
 
5. The "↓" command, with optional repeat factor, moves the text down
   by a half-screenful, unless the first line already is displayed.

6. The "E" command causes WHO to quit.  However, the last-drawn screen
   will not be cleared.  So you can look at it.

7. Any other character will cause WHO to clear the screen (revealing
   your old page printer), then quit.
*14 June 1972	VIDEO SWITCH DOCUMENTATION	LES
A  SAILON  describing  the   video   switch   hardware   resides   in
VDS.LES[S,DOC].  A description of keyboard commands and monitor calls
for controlling the switch and DD channel allocation are described in
VIDEO.LES[UP,DOC].  To  get  a  summary of the keyboard commands, say
"HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".

*7 July 1972	DOCUMENTATION FILES	LES
Online documentation files are divided into several areas, as follows.
	[P,DOC] contains the compiled version of the lab phone
		directory and other lists of people.
	[UP,DOC] contains user program descriptions (informal).
	[S,DOC] contains SAILONs, which are more formal descriptions
		of programs and hardware.
	[AIM,DOC] contains A. I. Memos, which report research results.
	[BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.

*23 JULY 1972	KLOG	RHT
The KLOG command allows you to switch areas in one line.  Semantically
it is LOGOUT, followed by LOGIN.  The syntax is:

KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}

examples 

KLOG 1/RHT

KL/F 1|RHT

KL 
1,RHT

*24 Jul 1972	SAIL	DCS,RHT,JRL
LEAP news

	1. In the past global model users of LEAP were required
	   to have the statement:
		
		REQUIRE -1 NEW_ITEMS;
		
	   in order to inhibit the allocation of various tables
	   for the local leap model. This statement is no longer
	   required. Instead the decision to allocate the tables
	   will be made using the following criteria. The local model
	   tables will be allocated only if any of the programs loaded
	   together to form a single job contain any declared local
	   items ( that is, any items declared without the attribute
	   GLOBAL), or any of the programs contain  the statement:
		
		REQUIRE n NEW_ITEMS;

       	   where "n" is greater that 0.
	   NOTE: this means that all users of local model LEAP must now
	   "require" new_items if they are going to dynamically create
	   non-global items by using the function NEW.(previously an
	   implicit REQUIRE 60 NEW_ITEMS was contained in every program).


	2. LEAP tables are now allocated as part of the SAIL initialization
	   code rather than on the first call to any LEAP subroutine.
	   The tables will be allocated if any of the SAIL programs
	   loaded contain declared items, itemvars, sets, lists or calls
	   to LEAP. This change was made so that datums of items could
	   be utilized before the first call to LEAP.

	3. The type codes for items have been altered. The new codes
	   returned by the TYPEIT function are as follows:

			0 - item deleted or never allocated
			1 - no type (no datum for this item)
			2 - item is bracketed triple
			3 - string
			4 - real
			5 - integer
			6 - set
			7 - list
			8 - procedure
		       16 - string array
		       17 - real array
                       18 - integer array
		       19 - set array
		       20 - list array
		       21 - invalid (runtime has screwed something up)
 	   The very astute user will notice that the only changes are to
	   up the codes for arrays and invalid by 5.

	IMPORTANT NOTE:This unfortunately will necesitate the recompilation
	and reloading of any programs which use array items as the RUNTIME 
	routines also use these type codes.The standard
	compiler  SAIL on [1,3] will have these changes as of 23:59 WED,
	jul26. Therefore if any of your programs use array items you should
	recompile them starting Thurs jul 27. Foist all complaints onto
	Jim Low.


*25 Jul 1972	SPOOLER	REG
SPOOLER NEWS:
	The old spooler '*LIST*' has been removed  from  the  system.
Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
have to reload with the new libraray.

	The command SPOOLQ has been removed. Instead, use the command
QSPOOL.   This  has the advantage that the command can be abbreviated
to one letter and the SPOOL command to two letters.

	A new SPOOL command is planned. This will allow users to more
fully utilize features of the new spooler.

*1 Aug 1972	FORTRAN	REG
DEC FORTRAN version 25 and LIB40 version 31 have been put up.
Some of the bugs in the compiler / operating system have been
eliminated.

*9 Aug 1972	DATA DISK	FW
Two new features have been added to data disk DPYOUT:

1) Overlapped mode, enabled by bit 0 of header word 0.
   In this mode, a DPYOUT will return without waiting for
   the transfer to be completed (although it will wait
   for any previou transfer), enabling the program to
   continue running. Header+2 will be set nonzero during
   the transfer, and to zero after the transfer is complete,
   so testing this is convenient (which should be done before
   changing the buffer). A DPYOUT with a zero word count will
   wait for a previous transfer without initiating a new one.

2) Double field mode, useful for text output. This is enabled
   by bit 1 of header word 0 and will cause the buffer to be
   transferred twice, once on each field. Header+3 should specify
   the address of the line address command word, which should
   contain the low-order line address as the third command in
   the word. Bit 24 of this word will be set to the proper
   field on each transfer. This feature cannot be used if more
   than one low-order line address command is used.

*16 Aug 1972	AP NEWS (APE, HOT)	ME

We have a line from the Associated  Press  (AP)  over  which  we  get
national  and  international news.  The news that comes in gets filed
on the disk and saved for about 24 hours.

For use in reading the news, there are two programs on the system.

Type "R HOT" to have the news typed on your console as it comes in.

Type "R APE" to be able to selectively read the news that is on file.
The  stories  are catagorized by keywords; to read the news, you type
to APE whatever keywords you want to read about.  To  get  help  when
you are running APE, type "?" and carriage return at any point. For a
list of the keywords, TYPE the file WORDS.SRT[AP,SYS]  or  SPOOL  the
file WORDS.LST[AP,SYS].

For further information, see the file APE.ME[UP,DOC].


*16 AUG 1972	SAIL MATRIX ROUTINES PACKAGE	SHK

Following Matrix Routines Now Available:

1) Real Matrix Multiplication Routine
	Multiplies two n-dimensional matrices (2-dimensional arrays)
	(size  m x n by n x p  to get a  m x p  matrix)
	or multiplies a 1-dimensional matrix by an n-dimensional matrix
	or an n-dimensional matrix by a 1-dimensional.
MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
	multiplies A by B and places the result in C
	(MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
	The only thing it won't do (I think) is multiply two 1-dimensional
	matrices or n-dimensional arrays (n>2).

2) Array Clear Routine
	MATCLR(REAL (or INTEGER) ARRAY A);
	Zeros the array A.

3) Real Array Multiplied by a Real Constant
	CONMUL(REAL ARRAY A,REAL B);
	Multiplies array A by constant B and places the result in A.

All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;


*30 Aug 1972	UUO	SHK
There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]

*4 Sept 1972	AP NEWS (APE, HOT)	ME
 The AP news is now spooled once a day (at a somewhat random
 time).  The listing, which will be kept in the conference
 room, will indicate a file name of "APNEWS[AP,SYS]".

*4 SEP 1972  FILDMP	RPH
New program to list files in different formats. See FILDMP.RPH on UP,DOC.

*4 SEP 1972  NEW SAIL	RHT
 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM  WILL  BE  UP.  ITS
 SEGMENT  WILL  BE  SAISG4.  THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
 FEATURES, INCLUDING USER REQUESTED  INITIALIZATIONS,  A  LOCATION(X)
 FUNCTION,  AN  IMPLICIT  ARRAY:  MEMORY[0:MEMSIZE], THE RUDIMENTS OF
 MULTIPLE PROCESSES, AND  MUCH  MORE.   WE  WILL  TRY  TO  HAVE  SOME
 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
*22 SEP 1972	NEW SAIL	RHT,JRL,KVL
 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.

 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
 NEWFEA.TXT[S,JRL].

 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
 MODEL HACKERS GLBS10. 

 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
 ARE RELOADED.


 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
 SAISG3 IS DELETED.

 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
 PROGRAM WITHOUT UNREADABLE MACROS.

 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
 GLBLOW.REL AS GLBLOW.921.  IF YOU FEEL YOU ARE BEING
 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
 SAY SOMETHING LIKE
 
 R SAIL.921 <CR>
 * FOO←FOO <CR>
 * LOADER!
 * SAILOW.921[1,3],FOO <ALT>
 
 WHERE THE STARS ARE TYPED BY THE SYSTEM
 
 THIS WILL GIVE YOU THE EFFECT OF DOING 
 
 LOA /COM FOO
 
 USING THE PREVIOUS SYSTEM.  

*22 Sept 1972	Upper Segment RAID and DDT	TVR
RAID or DDT may be retrieved from the disk  and  run  from  an  upper
segment.  This means your core image may contain RAID at a much lower
cost (102 octal words instead of 12200 words for RAID).  For  details
see DEBUG.DOC[1,TVR]

*22 Sept 1972	AP NEWS (APE)	ME
Multiple word keywords are now implemented in APE.  To use them,
separate the individual words with spaces in your keyword exressions.

Also, to have only the first few lines of each story you select
typed out, type an "F" at the beginning of the story selection
line ("Read which one(s)?").  If you use both "F" and "=" on
the same line, the order is irrelevant.  When you use the "F"
feature, you cannot spool or save the stories in a file.

For details on using APE, see the file APE.ME[UP,DOC].

*12 Oct 1972	FAIL	TVR
FAIL has been changed to stop at each error and give  the  option  to
continue  to next error, continue automatically or to edit.  The edit

option will call SOS if there are line numbers and TVED if not.   Any
complaints  should be sent to TVR.  If you don't want to stop at each
error, give FAIL the switch (F).  The old version is FAIL.OLD[1,3].
*21 Oct 1972	SAIL	JRL,RHT,KVL
A new SAIL compiler has been put up to correct bugs reported in the
last few weeks. There should be no incompatibitlies with the preceding
compiler and programs compiled with the previous compiler should
be runable with programs compiled with the new compiler. Thus, there
is no need to recompile or even reload SAIL programs which have
been compiled since SEPT 21.  If you do have a program which
compiled in the last month but doesn't now:
	1. REPORT THE PROBLEM TO A SAIL HACKER - or send
	   a message to AIL, including such details as
	   where a copy of the offending program is and the
	   nature of the SAIL bug.
        2. You may use the previous compiler by
	   R  SAIL.102
           * FOO←FOO
           * <call>
           where  FOO is the name of your sail program and  <call>
	   represents the typing of the CALL button (the stars are
	   typed by the system). The above sequence is equivalent to
	   the system level command:

		COM /COM FOO

A note to users of multiple processes and matching procedures:
	To initialize the multiple process environment the user
        should include the following declaration:

	   EXTERNAL PROCEDURE MAINPR;

	He should also make sure this procedure is called before
        doing any process sprouting or matching procedure calling.
	This is best done by using the REQUIRE INITIALIZATION feature
        or by making:
	   MAINPR;
        The first executable statement of your program.
This initialization will be compiled in, in the near future but until
then the above hack is required.
*3 Nov 1972	USER INTERRUPTS	FW
The PC stored on a memory protect interrupt via the new-style
user interrupt system is now the exact PC stored by the hardware,
rather than being incremented as it used to be. This is consistent
both with the old-style (DEC) user interrupt system and with the
"ILL MEM REF AT USER xxxxxx" typeout. If you really care about
the exact value of this PC, consult me or the PDP-10 flowcharts,
as it is anything but consistent.
*3 Nov 1972	VIDEO SWITCH	FW
The VDSMAP UUO now allows the 6 extra switch channels to be
addressed by setting bit 9 in the AC and putting the channel number
(0-5) in the TTY# field (11-17).

*8 Nov 1972	DUMPS	REG
DART, a new program to back up disk  files  on  tapes,  is  available.
system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
See DART.REG[UP,DOC].

*8 Nov 1972	PROTECTION	REG
The  file  access  protection  bit  400,  which   formerly   had   no
signifigance,  now  means  'Dump  Never' in DART.  All files that had
used this bit have been renamed without it.

*11 Nov 1972	SYSTEM	REG
The job table JOBQUE in the system now contains either the positive 
or negative value of the queue code of a job. Formerly, it had
always been negative.

*26 Nov 1972	FTP	DCS
A new FTP has been installed with the following features:

 1) You needn't type the MODE, TYPE, or BYTE commands at all
    unless you want to change the defaults of S, I, and 36 resp.
    Changing them is inadvisable since we only support those
    settings.  The defaults will be to the foreign host just
    before the first data transfer.

 2) RSTR clears any DATA connections that the FTP thinks it has
    open.  Sometimes it's wrong.  If you get an indication from
    FTP that a command is illegal because the DATA connection already
    exists, do this command.  It will go away when hacks in FTP
    have been cured.

 3) QUOT sends the rest of the line directly over the net, so you
    can use it to execute other peoples commands which are either
    nonstandard or just unsupported here.  This won't do any good
    if our end has to be involved in the operation, but it is good
    to do things like STAT (status), and HELP at CMU.
 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
 and NIC document 10596 for complete FTP protocol description.

*26 Nov 1972	MLISP2	DAV
A new version of MLISP2 has been put on the system.  An old version
exists and will be around for one week.  The main motivation for
the changes was to fix several serious bugs,
and to clean the language up prior to publishing a manual.
Changes:
	(1) Variable names can no longer be literals (e.g. IF, FOR, ...).
	(2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
	(3) SPECIAL variables now must be declared at translation (PARSE)
		time.  To facilitate this, a new production has been added,
		having the form:	SPECIAL <identifier_list>
		It is strongly suggested that all SPECIAL variables be
		declared at the top of the program using this production.
	(4) ?# in the syntax (to inhibit scanning) should now be just #.
		It no longer takes up a syntax position.
	(5) Setting variables in backtracking contexts is now done with
		real LISP numbers (formerly machine representation).
		A function CONTEXT() gets the current backtracking
		context.  X{CONTEXT()/10 + 3} ← etc. is now legal.
	(6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
	(*) Prefixes are more restricted in use; the syntax is
		<PREFIX>  <SIMPEX>  as always, but IF, FOR, CASE, etc.
		are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
		Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
		use  RETURN(IF ..., PRINT(CASE ..., etc.
	(7) The syntax of SELECT has been changed.  Use SUCCESSOR instead
		of NEXT, and FINALLY instead of IN WHICH CASE.
		E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
			UNLESS NULL(L) FINALLY FAILURE()
	(8) MLISP2.PRI now prints as it goes along, instead of at the end.

*3 Dec 1972	SAIL	RHT
A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
This system will include 
	(1) Leap revisions by JRL.  This means that any programs
		that use LEAP should be recompiled.
	(2) User required initializations will take place as
		the first executable statement of the main
		program (after outer block arrays have been
		initialized). Programs that are loaded
		with any .REL files which have user initializations
		should have their main programs recompiled.
	(3) Hooks into the user interrupt system have been provided.
		Those interested should see Russ Taylor.
	(4) A new kind of declaration has been provided:
		CLEANUP proc1,proc2,proc3;
	    Where proc1, etc. are names of (parameterless)
	    procedures.  The effect of a CLEANUP declaration 
	    is to cause the named procedures to be called
	    whenever the block in which it occurs is exited,
	    whether by falling through the end, doing a go_to,
	    or by any other means.  These procedures will be
	    called before any local arrays, sets, or lists are
	    released.  The calls will take place in the order
 	    specified.  Thus:

		BEGIN
		INTEGER I;
		PROCEDURE FOO;I←1;
		BEGIN
		INTEGER ARRAY X[0:I];
		PROCEDURE BAZ;OUTSTR(CVS(X[I]);
		CLEANUP FOO,BAZ;
		:
		COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
			BE PRINTED OUT;

		:
		END;
		END;

	(5) various minor modifications to the process stuff.

The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
& HLBSA5.REL.  

The old compiler will be SAIL.D07[1,3]

*12 Dec 72	AP NEWS (APE)	ME
There is now a full search feature in APE.  If you  type  in  a  word
that  is  not in the keyword dictionary, APE will tell you so and ask
you if you wish a "Full search?".  If you type Y, the news file  will
be  searched  for the specified keyword.  If you type ?, a (complete)
summary of this feature will be typed out (try  it!).   If  you  type
anything else, no search will be done.  You may interrupt a search in
progress by typing any character.  (That means you may not type ahead
during a search.)

Note:   Every  word not in the dictionary causes a separate search to
take place and will require you to say Y to "Full search?".

Special note:  Normally the whole news file is searched, taking 8  to
10   seconds,  but  if  a  non-keyword  is  the  second  part  of  an
intersection (eg, NIXON * JJ), then only the  necessary  stories  are
searched.

*12 DEC 72	PUB	TES
PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
The old version is PUBMAC.OLD[1,3] for a few weeks.

The PUB manual has been deleted from the disk.  The abstract remains
on PUB.TES[S,DOC].  Bound copies are in the SAILON file drawer.

In January, a new-SAIL PUB should be up with several obscure but
annoying bugs removed.  Major restrictions and bugs now known:
	SEND INDEX ⊂ ... ⊃	must be all on one line
	See {PAGE X}		must be followed by a non-word-break
					such as  ) , ; ] .
					but definitely not a SPACE
	NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
	TURN OFF "}" inside blocks doesn't always work right (just for "}")
	↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
	Footnotes hack a lot, esp. if the page fills up during one.